Skip Headers

Oracle® HTML DB User's Guide Release 2.0 Part Number B16373-01 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# 5 Using Application Builder

This section provides important background information about using Application Builder. You use Application Builder to build dynamically rendered applications in Oracle HTML DB.

This section contains the following topics:

- Accessing Application Builder

- About the Application Builder Home Page

- About the Application Home Page

- About Application Attributes

- About the Page Definition

- Using the Developer Toolbar

- Editing a Page Definition

- Accessing Alternate Page Views

- About the Shared Components Page

- Understanding Application Processes

- Understanding Application Computations

- Viewing Application Reports

See Also: "Quick Start" "Application Builder Concepts" "Building an Application" "Controlling Page Layout and User Interface" "Adding Navigation"

## Accessing Application Builder

An application is a collection of database-driven Web pages linked together using tabs, buttons, or hypertext links. The pages within an application share a common session state definition and authentication method. Application Builder is the tool you use to build the pages that comprise an application.

To access Application Builder:

1. Log in to Oracle HTML DB.

   The Workspace home page appears.

2. To view the Application Builder home page you can either:

   - Click the Application Builder icon to drill-down to the Application Builder home page.

   - Click the down arrow on the right side of the icon to view a pull-down menu. Then select the appropriate menu option.

   Figure 5-1 Application Builder Pull-down Menu

   Description of the illustration new_menu.gif

   Note: For the purposes of the consistency, this document uses the primary navigation path (or dill-down approach) when explaining navigation.

## About the Application Builder Home Page

The Application Builder home page displays all applications you have either installed or created.

Figure 5-2 Application Builder Home Page

Description of the illustration app_bldr_home.gif

You can use the controls at the top of the page to:

- Search for an application. Enter keywords in the Application field and click Go. To view all applications, leave the Application field blank and click Go. You control how many rows display by making a selection from the Display list.

- Change the View. By default, each application displays as a large icon. You can change the appearance of the page by making a selection from the View list. Available View options include:

  - Icons (the default) displays each application as a large icon identified by the application name.

  - Details displays each application as a line in a report. Each line includes the application ID, the application name, when the application was last updated, the page count, and who last updated the application.

  You can control how many applications display, by making a selection from the Display list.

- Import an application. Click Import to import an exported application file.

- Create an application. Click Create to create a new application or install a demonstration application.

- View an application. Click the application icon or application name to view a specific application.

See Also: "Importing Export Files", "Viewing and Installing a Demonstration Application", and "About Creating an Application Using a Wizard"

## About the Application Home Page

To view a specific application, select the application on the Application Builder home page. The Application home page appears. The application ID, the application name, and the parsing schema display at the top of the page.

Figure 5-3 Application Home Page (Top)

Description of the illustration bldr_hm_top.gif

The following four large icons appear next:

- Run Application submits the pages in the current application to the HTML DB engine to render viewable HTML.

- Edit Attributes links to the Application Attributes page where you can access Standard Attributes (attributes common to the entire application), Security Attributes, and Globalization Attributes.

- Shared Components links to a list of shared components and user interface controls that can display or be applied on every page within an application.

- Export/Install links you to the Export Import Wizard. Use this wizard to import and export an entire application as well as related files such as cascading style sheets, images, static files, script files, themes, user interface defaults, and workspaces.

A search bar appears in the center of the page. You can use this search bar to:

- Search for a page ID or name. Enter a case insensitive keyword or phrase in the Page field and click Go. To view all pages in an application, leave the Page field blank and click Go. You control how many rows display by making a selection from the Rows list.

- Change the Page View. By default, each page displays as a large icon. You can change the appearance of the page by making a selection from the View list. You can control how many pages display, by making a selection from the Display list.

- Create a New Page. Click the Create Page button to launch a wizard to create a new page

See Also: "Running a Page or Application", "Configuring Standard Application Attributes", "About the Shared Components Page", "Deploying an Application", and "Adding Pages to an Application"

### Page Display Alternatives

You can control how the pages display by making a selection from the View list. Available View options include:

- Icons (the default) displays each page as a large icon identified by the page name.

- Details displays each page as a line in a report. Each line includes the page ID, the page name, when the page was last updated, and who last updated the page.

  This view also includes a Lock and a Run icon. Use the Lock icon to prevent conflicts during application development. Click the Run icon to submit a page to the HTML DB engine and render viewable HTML.

Figure 5-4 Application Home Page Details View

Description of the illustration bldr_hm_pglist.gif

See Also: "Locking and Unlocking a Page" and "Running a Page or Application"

### About the Tasks List

A Tasks list displays on the right side of the Application home page.

Figure 5-5 Tasks List

Description of the illustration bldr_task_list.gif

The Task list contains the following links:

- Delete this Application deletes the current application. See "Deleting an Application".

- Manage Page Groups links to the Page Groups page. Make the pages within your application easier to access by organizing them into page groups. See "Grouping Pages".

- Manage Page Locks links to the Locked Pages page. Locking pages in an application prevents conflicts during application development. See "Locking and Unlocking a Page".

- View Application Reports displays links to summary application reports. See "Viewing Application Reports".

## About Application Attributes

Application attributes apply to an entire application. Once you create an application the next logical step is to review and possibly update application attributes.

Topics in this section include:

- Configuring Standard Application Attributes

- Configuring Security Attributes

- Configuring Globalization Attributes

### Configuring Standard Application Attributes

Standard Application Attributes display on the Edit Application Attributes page. You use these attributes to control the application name and availability as well as defined substitution strings. Additionally, the Edit Application Attributes page displays defined build options, the associated theme, template defaults, and component defaults. Required values are marked with a red asterisk (*).

Topics in this section include:

- Accessing the Edit Application Attributes Page

- Editing Application Attributes

#### Accessing the Edit Application Attributes Page

To edit application attributes:

1. Navigate to the Workspace home page and click the Application Builder icon.

2. Select an application.

3. Click Edit Attributes.

   The Application Attributes page appears.

4. Click Edit Standard Attributes.

   The Edit Application Attributes page appears.

#### Editing Application Attributes

The following sections describe the attributes available on the Edit Application Attributes page.

Topics in this section include:

- Name

- Availability

- Global Notifications

- Substitutions

- Logo

- Build Options

- Theme

- Template Defaults

- Component Defaults

##### Name

Use Name to define basic characteristics of your application, including the application name, an optional alphanumeric alias, a version number, and the application owner. Table 5-1 describes all Application Definition attributes.

Table 5-1 Application Definition Attributes

Attribute | Description
--- | ---
Name | Provides a short descriptive name for the application to distinguish it from other applications in the Oracle HTML DB development environment.
Application Alias | Assigns an alternate alphanumeric application identifier. You can use this identifier in place of the application ID.For example, suppose you create an alias of `myapp` for application 105. Using `f?p` syntax, you could call application 105 as either: `f?p=105:1` `f?p=myapp:1`
Version | Includes the application's version number on a page. You can also automatically tie the version to the date of last modification using the following format masks: `YYYY.MM.DD` `MM.DD.YYYY` `DD.MM.YYYY` If your application version uses YYYY.MM.DD then Oracle HTML DB replaces this format mask with the date of last modification of any application attribute.
Image Prefix | Determines the virtual path the Web server uses to point to the images directory distributed with Oracle HTML DB. During installation, the virtual path is configured as `/i/`. When embedding an image in static text (for example, in page or region headers or footers) you can reference an image using the substitution string `#IMAGE_PREFIX#`. For example, to reference the `image go.gif` you would use the following syntax:
    <img src="#IMAGE_PREFIX#go.gif">
See Also: "IMAGE_PREFIX", "Uploading Images", and "Referencing Images"
Proxy Server | Use this field to specify a proxy server. For example, Application Builder may require a proxy server when using a region source type of URL. The URL region source embeds the results of the URL (that is, the page returned by navigating to the URL) as the region source. If you use a firewall and the target of a URL is outside the firewall relative to Oracle HTML DB, you may need to specify a proxy server. You can reference values entered into this field from PL/SQL using the PL/SQL package variable `HTMLDB_APPLICATION.G_PROXY_SERVER`.
Logging | Determines whether or not user activity is recorded in the Oracle HTML DB activity log. When set to Yes, every page view will be logged, allowing a Workspace administrator to monitor user activity for each application. Disabling logging may be advisable for high volume applications.
Parsing Schema | Specifies the schema that all SQL and PL/SQL in the application will be parsed as. You may use `#OWNER#` to reference this value in SQL queries and PL/SQL (for example, in a region or a process).
Exact Substitutions | Select whether or not only exact substitutions will be supported. For optimal run-time performance, it is recommended you use exact substitutions. Exact substitutions use the following sytnax:
    &ITEM.
Non-exact substitutions use the following sytnax:
    &ITEM

See Also: "Using Substitution Strings" and "Using f?p Syntax to Link Pages"

##### Availability

Use Availability attributes to manage your application by defining an application status and build status. For example, if you select the status Restricted Access, you can specify which users have access and can run the application. Table 5-2 describes these attributes.

Table 5-2 Application Availability Attributes

Attribute | Description
--- | ---
Status | Specifies whether or not the application is available or unavailable for use. Options include: Available - Application is available with no restrictions. Available with Edit Links -The application is available for use. For developers, the Developer toolbar displays at the bottom of each page. Requires the developer to be logged in to the Application Builder in the same browser session. Available to Developers Only - Application is available to users having developer privileges. Restricted Access - Application is available to developers named in Restrict to comma separated user list. Unavailable - Application cannot be run or edited. The message in Message for unavailable application displays. when users attempt to access the application. Unavailable (Status Shown with PL/SQL) - Application cannot be run or edited Unavailable (Redirect to URL) - Application cannot be run. The user is linked to the URL entered in Message for unavailable application.
Build Status | Identifies the build status of the current application: Run and Build Application - Developers can both run and develop the application. Run Application Only - Developers can only run the application. See Also: "Changing Application Build Status" for information about managing application build status as an Oracle HTML DB administrator
Message for unavailable application | If you set Status to Unavailable, Unavailable (Status Shown with PL/SQL), or Unavailable (Redirect to URL), the text you enter in this attribute displays. If you set Status to Available, the text you enter in this attribute does not display.
Restrict to comma separated user list (Status must equal Restricted Access) | Use this attribute in conjunction with the Status Restricted Access. If you set Status to Restricted Access, only the users listed in this attribute can run the application. To use this attribute: From the Status list, select Restricted Access. Enter a comma-delimited list of users who can run the application in the field provided.

##### Global Notifications

You can use the Global Notifications attribute to communicate system status to application users. For example, you can use this attribute to notify users of scheduled downtime, or communicate other messages regarding application availability. If the page templates used in your application contain the `#GLOBAL_NOTIFICATION#` substitution string, the text entered here will display in that string's place.

To create a global notification:

1. Include the `#GLOBAL_NOTIFICATION#` substitution string in your page template.

2. Navigate to the Edit Application Attributes page and enter a message in the Global Notifications attribute.

3. Click Apply Changes.

See Also: "Using Substitution Strings"

##### Substitution s

Use these fields to define static substitution strings for your application. You can use static substitution string for phrases or labels that occur in many places within an application. Defining static substitution strings centrally enables you to change text strings in multiple places in your application by making a single change to the Substitution Value defined on this page.

See Also: "Using Substitution Strings"

##### Logo

Use these attributes to identify an image to be used as the logo for this application. In Image, identify the image name. If you identify an image in the Image attribute and include the `#LOGO#` substitution string in your page template, the HTML DB engine generates an image tag. Use Logo Image Attributes to identify specific image attributes for the logo image. For example:

    width="100" height="20" alt="Company Logo"

See Also: "Uploading Images", "Customizing Templates", and "Page Templates"

##### Build Options

Displays existing build options. Most application attributes have a build option attribute. Do not specify a build option unless you plan to exclude that object from specific installations. Build Options have two possible values: `INCLUDE` and `EXCLUDE`. If you specify an attribute to be included, then the HTML DB engine considers it at run time. However, if you specify an attribute to be excluded, then the HTML DB engine treats it as if it does not exist.

See Also: "Using Build Options to Control Configuration"

##### Theme

Displays the current theme applied to the application. Themes are collections of templates that can be used to define the layout and style of an entire application. Each theme provides a complete set of templates that accommodate every user interface pattern that may be needed in an application.

See Also: "Managing Themes"

##### Template Defaults

Template Defaults list the default templates for this application. To specify a new template at the application level, you can either:

- Select a new theme

- Select a new default page template on the Define Theme page

You can also override this default by making a selection from the Page Template list on the Page Attributes page.

Table 5-3 describes template defaults for the current application.

Table 5-3 Application Template Defaults Attributes

Attribute | Description
--- | ---
Default Page Template | Indicates the default page template to display pages. You can override this selection by making a selection from the Page Template list on the Page Attributes page. See Also: "Editing Page Attributes"
Print Mode Page Template | Identifies the template to be used when the HTML DB engine is in printer friendly mode. When calling the HTML DB engine to render a page, you have the option to specify whether or not the page should be displayed using the Print Mode Page Template specified. If you specify Yes, then the page displays using a printer friendly template. The HTML DB engine displays all text within HTML Form Fields as text. The printer friendly template does not need to have the `#FORM_OPEN#` or `#FORM_CLOSE#` substitution string. See Also: "Optimizing a Page for Printing"
Error Page Template | Optional. Specifies a page template to use for errors that display on a separate page, as opposed to those that display inline.

See Also: "Changing Default Templates in a Theme" and "Customizing Templates"

##### Component Defaults

Component Defaults identify default templates used when running wizards. You can override these settings on the attributes page for each control or component. Table 5-4 describes component defaults for the current application.

Table 5-4 Component Defaults

Attribute | Description
--- | ---
Calendar | Default calendar template used when creating a new calendar.
Label | Default label template used when you create new page items.
Report | Default report template used when you create new report.
List | Default template used when you create a list.
Breadcrumb | Default template used when you create a breadcrumb.
Button | Default template to be used when you create new buttons that are template controlled.
Region | Default region template used when you create a new region.
Chart Region | Default region template used when you create a chart.
Form Region | Default region template used when you create a form.
Report Region | Default region template used when you create a report.
Tabular Form Region | Default region template used when you create a tabular form.
Wizard Region | Default region template used when you create a new wizard component.
Breadcrumb Region | Default region template used when you create a new breadcrumb.
List Region | Default region template used when you create a new list.

See Also: "Changing Default Templates in a Theme" and "Customizing Templates"

### Configuring Security Attributes

You can provide security for your application by configuring attributes on the Edit Security Attributes page. The Security Attributes you choose apply to all pages within an application.

Topics in this section include:

- Accessing the Edit Security Attributes Page

- Editing Security Attributes

See Also: "Managing Security"

#### Accessing the Edit Security Attributes Page

To access the Edit Security Attributes page:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

4. Click Edit Attributes.

   The Application Attributes page appears.

5. Click Edit Security Attributes.

The Edit Security Attributes page appears.

#### Editing Security Attributes

The following sections describe the attributes available on the Edit Security Attributes page.

Topics in this section include:

- Authentication

- Authorization

- Database Schema

- Session State Protection

- Virtual Private Database (VPD)

##### Authentication

Authentication is the process of establishing users' identities before they can access an application. Although you define multiple authentication schemes for your application, only one scheme can be current at a time. Table 5-5 describes the attributes available under Authentication.

Table 5-5 Authentication Attributes

Attribute | Descriptions
--- | ---
Home Link | Specifies an URL or procedure that should be run when you run the application. For example, Home Link could contain the relative URL used to locate the application home page. For example, `f?p=6000:600` would specify application 6000 with a home page ID of 600. In this example, the value you enter in Home Link replaces the `#HOME_LINK#` substitution string in application templates. You can also use this attribute to name a procedure. For example, you could create a procedure such as `personal_calendar` which calls an HTML page to serve as the application home. Note: Do not use the Home Link attribute to determine the page that displays after authentication. The page that displays after authentication is determined by other components within the application's authentication scheme. See Also: "HOME_LINK" and
Login URL | Replaces the substitution strings &LOGIN_URL. in HTML or #LOGIN_URL# in templates. See Also: "LOGIN_URL" and "Creating an Authentication Scheme"
Public User | Identifies the Oracle schema (or user) used to connect to the database through the database access descriptor (DAD). The default value is `HTMLDB_PUBLIC_USER`. Once a user has been identified, the HTML DB engine keeps track of each user by setting the value of the built-in substitution string `APP_USER`. When `APP_USER` equals this value, the HTML DB engine considers the current session to be a public user session. The HTML DB engine supports the following built-in display conditions: USER_IS_PUBLIC_USER USER_IS_NOT_PUBLIC_USER If the current application user (`APP_USER`) equals the value of this attribute, then the user is logged on as a public user. Some applications have public (not logged in) and a private (logged in) modes. By determining if the user is the public user, you can conditionally display or hide information. For example, you can show a login button if the user is the public user and a logout link if the user is not a public user. Reference this value using `HTMLDB_APPLICATION.G_PUBLIC_USER`. The HTML DB engine also has built in condition types `USER_IS_PUBLIC_USER` and `USER_IS_NOT_PUBLIC`. See Also: "HOME_LINK" and "Understanding Conditional Rendering and Processing"
Authentication Scheme | Click this button to define a new authentication scheme. See Also: "Understanding How Authentication Works" and "Creating an Authentication Scheme"

##### Authorization

Authorization controls user access to specific controls or components based on user privileges. You can specify an authorization scheme for your application, by making a selection from the Authorization Scheme list. You can assign only one authorization to an entire application. However, you can assign an authorization scheme to individual pages, page controls (such as a region, a button, or an item), or a shared component (such as a menu, a list, or a tab).

To create a new authorization scheme, click Define Authorization Schemes.

An authorization scheme is a binary operation that either succeeds (equals true) or fails (equals false). If it succeeds, then the component or control can be viewed. If it fails, then the component or control cannot be viewed or processed. When you attach an authorization scheme to a page and it fails, an error message displays instead of the page. However, when you attach an authorization scheme to a page control (for example, a region, a button, or an item) and it fails, no error page displays. Instead, the control either does not display or is not processed or executed.

See Also: "Providing Security Through Authorization"

##### Database Schema

Use Parsing Schema to specify the database scheme for the current application. You can only select schemas that are accessible to the current workspace. Once defined, all SQL and PL/SQL commands issued by the application will be performed with the rights and privileges of the defined database schema.

##### Session State Protection

Enabling Session State Protection can prevent hackers from tampering with URLs within your application. URL tampering can adversely affect program logic, session state contents, and information privacy.

To enable or disable Session State Protection for your application, make a selection from the Session State Protection list. Setting Session State Protection to Enabled turns on session state protection controls defined at the page and item level.

To configure Session State Protection, click Manage Session State Protection.

See Also: "Understanding Session State Protection"

##### Virtual Private Database (VPD)

A Virtual Private Database (VPD) provides an application programming interface (API) that enables developers to assign security policies to database tables and views. Using PL/SQL, developers can create security policies with stored procedures, and bind the procedures to a table or view by means of a call to an RDBMS package. Such policies are based on the content of application data stored within the database, or are based on context variables provided by the Oracle database. In this way, VPD permits access security mechanisms to be removed from applications and centralized.

The PL/SQL you enter in this field is executed immediately after the user is authenticated. `V('USER')` is accessible from this function. Session state for the current call is not yet initialized when this call is made. If your application does not need to employ VPD to support multiple customers in the same database, leave this attribute null.

See Also: "Providing Security Through Authorization" and Oracle Label Security Administrator's Guide

### Configuring Globalization Attributes

In Oracle HTML DB you can develop applications that can run concurrently in different languages. A single Oracle HTML DB application can be translated to support different languages. Use the attributes on the Edit Globalization Attributes page to specify globalization options such as the primary application language.

Topics in this section include:

- Accessing the Globalization Attributes Page

- Accessing the Globalization Attributes Page

See Also: "Managing Oracle HTML DB Globalization"

#### Accessing the Globalization Attributes Page

To access the Edit Globalization Attributes page:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

   Application Builder appears.

4. Click Edit Attributes.

   The Application Attributes page appears.

5. Click Edit Globalization Attributes.

   The Edit Globalization Attributes page appears.

#### Editing Globalization Attributes

The following sections describe the attributes available on the Edit Globalization Attributes page.

##### Application Primary Language

Identifies the language in which an application is developed. This language is the base language from which all translations are made. For example, suppose application 100 was authored in English, translated into French, and published as application 101. English would be the Application Primary Language.

All modifications to the application should be made to the primary language specified here.

##### Application Language Derived From

Specifies how Oracle HTML DB determines or derives the application language. The application primary language can be static, derived from the Web browser language, or determined from a user preference or item. The database language setting also determines how the date is displayed and how certain information is sorted.

This option enables you to disable browser derived language support. You also have the option of having the application language derived from an application preference.

##### Automatic CSV Encoding

Automatic CSV Encoding controls the encoding of all CSV report output in an application. The default value for Automatic CSV Encoding is No. If Automatic CSV Encoding is set to Yes, CSV report output will be properly converted to a character set compatible with localized desktop applications. The character set for the CSV encoding is determined by the Application Language Derived From setting.

The encoding of pages in Oracle HTML DB is determined by the character set of the Database Access Descriptor (DAD) used to access Oracle HTML DB. For example, if the character set of the Database Access Descriptor is AL32UTF8, all pages in all applications from the instance of Oracle HTML DB will be encoded in UTF-8.

By default, the CSV output from report regions is encoded in the same character set as the Database Access Descriptor. However, some desktop spreadsheet applications require that the data is encoded in the client desktop operating system character set. In the case of multibyte data, the CSV output from report regions will often appear corrupted when opened by a desktop spreadsheet application. This is because the CSV output is encoded differently that what is required by the desktop application. Enabling Automatic CSV Encoding resolves this issue.

For example, if the user's language preference for an Oracle HTML DB application is `de`, the CSV data will be encoded in `Western European Windows 1252`, regardless of the Database Access Descriptor character set setting. If the user's language preference is `zh-cn`, the CSV data will be encoded in Chinese GBK.

## About the Page Definition

A page is the basic building block of an Oracle HTML DB application. Each page can have buttons and fields (called items) and application logic (or processes). You can branch from one page to the next using conditional navigation; perform calculations (called computations); perform validations (such as edit checks); and display reports, calendars, and charts.

Topics in this section include:

- Accessing a Page Definition

- Understanding the Page Definition

### Accessing a Page Definition

You can view, create, and edit the controls that define a page by accessing the Page Definition.

To access the Page Definition for an existing page:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

   Application Builder home page appears.

3. Select an application.

   The Application home page appears.

4. Select a page.

   The Page Definition appears.

Figure 5-6 Page Definition

Description of the illustration pg_def.gif

### Understanding the Page Definition

A breadcrumb trail displays at the top of each Page Definition. Breadcrumb trails appear on every page in Oracle HTML DB. Each breadcrumb entry indicates your location relative to other pages in the current application and functions as an alternate navigation path. You can instantly go to another page by clicking a breadcrumb entry.

Figure 5-7 Page Definition (Top)

Description of the illustration pg_def_top.gif

The current page identification number (or ID) displays on the far right side of the page, next to a small icon that resembles a traffic light. This icon is called the Run Page icon. Clicking this icon runs the current page and renders it into viewable HTML.

A page navigation bar appears next. Options available on the page navigation bar include:

- Page. Displays the current page identification number (ID). To view another page directly, enter the page ID in the Page field and click Go. To access the previous or next page, click the arrow buttons.

- View. Controls the current page view. To view an alternative report, make a selection from the list and click Go. See "Accessing Alternate Page Views".

- Previous and Next. These buttons resemble less than (<) and greater than (>) signs. Click these buttons to move to the previous or next page ID.

- Delete. Deletes the current page.

- Copy. Creates a copy of the current page. You specify a new page ID and page name.

- Edit Attributes. Links to Page Attributes. Use this page to edit high-level page attributes such as the page name, an optional name alias, and view information about defined tab sets, specified templates, and defined authorization schemes. See "Editing Page Attributes".

- Create. Links to a wizard for creating a new page. See "Creating a Page from the Page Definition".

The page name and last update date display to the right of the page navigation bar.

See Also: "Adding Pages to an Application" and "Running a Page or Application"

The center of every Page Definition is divided into three sections:

- Page Rendering lists user interface controls and logic that execute when the page is rendered.

- Page Processing lists list logic controls (such as computations and processes) that are evaluated and executed when the page is processed.

- Shared Components lists common components that can be called from multiple pages in an applications.

See Also: "Editing a Page Definition" and "About the Shared Components Page"

## Using the Developer Toolbar

The Developer toolbar offers a quick way to edit the current page, create a new page, region, or page control, view session state, or turn edit links on an off. You can control whether the Developer toolbar displays by changing the Availability Status on the Edit Application Attributes page.

See Also: "Editing Application Attributes" for information on the Status list

Figure 5-8 Developer Toolbar

Description of the illustration d_toolbar.gif

The Developer toolbar consists of the following links:

- Edit Application links you to the Application home page. See "About the Application Builder Home Page".

- Edit Page accesses the Page Definition for the current running page. See "Editing a Page Definition".

- Create links to a wizard for creating a new page, region, page control (item, button, branch, computation, process, or validation), or a shared control (navigation bar icon, tab, list of values, list, or breadcrumb). See "Creating a Page from the Developer Toolbar".

- Session displays a new window containing session state information for the current page. See "Viewing Session State".

- Debug toggles the page between Debug and No Debug mode. See "Accessing Debug Mode".

- Show Edit Links toggles between Show Edit Links and Hide Edit Links. Clicking Show Edit Links displays edit links next to each object on the page that can be edited. Each edit link resembles two colons (::) and appears to the right of navigation bar items, tabs, region titles, buttons, and items. Clicking on the link displays another window in which to edit the object.

## Editing a Page Definition

A page is the basic building block of an application. Each page has page ID, a name, and typically some text attributes such as a header, title and footer. You add content to your page by creating page controls (regions, items, and buttons). Page templates and page region templates control the exact look and feel of each page.

Topics in this section include:

- Accessing a Summary View of Controls, Components, and Application Logic

- Copying or Creating a Control or Component

- Editing Page Attributes

- About Page Rendering Controls

- About Page Processing Controls

- Understanding Page Computations

- Understanding Page Processes

See Also: "About the Page Definition"

### Accessing a Summary View of Controls, Components, and Application Logic

Each Page Definition serves a a central navigation point for all the controls, components, and application logic that define a page.

You can access a summary view of all defined controls or components by selecting the title (for example, Regions, Button, Items, Computations, Processes, and so on). For example, selecting Regions displays a summary report of all currently defined regions on the current page. You can use this summary view to:

- Edit the multiple attributes at once by making new selections from the available fields and select lists.

- Link to a definition page by clicking the Edit icon.

You can access additional summary views by clicking the buttons at the top of each page. To save your edits to any summary view, click Apply Changes.

You can also view the attributes of a specific control or component by selecting its name on the Page Definition. For example, suppose your Page Definition contains a region named Customers. Clicking the region name Customers would display an attributes page for that region.

### Copying or Creating a Control or Component

You can copy or create new controls or components by clicking the Copy and Create icons. The Create icon resembles of a plus (+) sign that overlaps a small page. Click the Create icon to create a new control or component.

Figure 5-9 Create Icon on the Page Definition

Description of the illustration pg_def_create_ico.gif

The Copy icon resembles two small overlapping pages. Click the Copy icon to make a copy of an existing control or component.

Figure 5-10 Copy Icon on the Page Definition

Description of the illustration pg_def_copy_ico.gif

### Editing Page Attributes

Page attributes only apply to a specific page. You access page attributes from the Page Definition.

To edit page attributes:

1. Navigate to the Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. At the top of the page, click Edit Attributes.

   The Page Attributes page appears. Required values are marked with a red asterisk (*).

The topics that follow describe the specific sections of the Page Attributes page.

See Also: "Adding Pages to an Application" for information about creating a new page

#### Name

Use these attributes to define general attributes for the current page such as a page name, an optional alphanumeric alias, and associated page groups. Table 5-7 describes these attributes.

Table 5-6 Page Attributes: Name

Attributes | Descriptions
--- | ---
Name | Identifies the name of the current page for application developers. This name is used in numerous Oracle HTML DB pages and reports, along with the page ID and page title.
Page Alias | Enter an alphanumeric alias for this page. This alias must be unique within the current application. For example, if you were working on page 1 of application 100, you could create an alias called `home`. You could then access this page from other pages using the following `f?p` syntax:
    f?p=100:home
Group | Identify the page group you would like to associate with this page. Page groups do not affect functionality, but help developers manage the pages within an application. See Also: "Grouping Pages"

#### Display Attributes

Use these attributes to define general display attributes for the current page such as the selected page template, standard tab set, title, and cursor focus. Table 5-7 describes these attributes.

Table 5-7 Page Attributes: Display Attributes

Attributes | Descriptions
--- | ---
Page Template | Select a page template to control the appearance of this page. Making a selection here overrides the default page template defined within the current theme. See Also: "Changing Default Templates in a Theme"
Standard Tab Set | Select a standard tab set to be used for this page. A standard tab set is associated with a specific page and page ID. You can use standard tabs to link users to a specific page. See Also: "Creating Tabs"
Title | Enter a title to display in the title bar of the browser window. The HTML DB engine uses the title you specify here in place of the `#TITLE#` substitution string used in the page template. This title is inserted between the HTML tag `<TITLE></TITLE>`.
Cursor Focus | Select whether or not you want the cursor focus to be placed in the first field on the page. Select Do not focus cursor if you do not want to include JavaScript.

#### Header and Footer

Use these attributes to define page header, body header, body footer, and page footer text. Table 5-8 describes these attributes.

Table 5-8 Page Header, Footer and Text Attributes

Attribute | Description
--- | ---
Header Text | Enter the text of the HTML to display after the page template header and before page template body.
Body Header | Enter the text of the HTML to display before showing regions. Displays before the page template `#BOX_BODY#` substitution string.
Footer | Enter the text of the HTML to display after page template body and before page template footer.

#### HTML Header

Use this attributes to replace the `#HEAD#` substitution string in the page template header. The values entered here are inserted after the HTML `<HEAD>` tag. Common uses of these attributes:

- Code page-specific inline cascading style classes

- Add additional style sheets for a specific page

- Code page-specific JavaScript

- Code page-specific meta tag page refresh

#### On Load

Use this attribute to add events when the page is being loaded, such as calls to JavaScript. In the Page HTML Body Attribute, enter JavaScript or text to be substituted for your page template's `#ONLOAD#` substitution string. To use this feature, your page template must include the `#ONLOAD#` substitution string.

You can use the Page HTML Body attribute to write into the contents of the opening `<BODY>` tag. A typical page template might use `#ONLOAD#` within the opening `<body>` tag as shown in the following example:

    <html>
    <head>
    ...
    </head>
    <body #ONLOAD# >

See Also: "Incorporating JavaScript into an Application"

#### Security

Use these attributes to specify an authorization scheme, authentication, and URL access protection for the current page. Table 5-9 describes these attributes

Table 5-9 Page Attributes: Security

Attribute | Description
--- | ---
Authorization Scheme | Select an authorization scheme to be applied to the page. Authorization schemes are defined at the application level and can be applied to many elements within the application. An authorization scheme is evaluated either once for each application session (at session creation), or once for each page view. If the selected authorization scheme evaluates to true, then the page displays and is subject to other defined conditions. If it evaluates to false, then the page will not display and an error message displays. See Also: "Providing Security Through Authorization"
Authentication | Specifies whether this page has been defined as public or requires authentication. If a page is identified as public, the page can be viewed before authentication. This attribute only applies if the application uses SCHEME authentication. The application's page sentry function can access this page attribute to identify pages that do not require prior authentication to view. The implementation of the authentication scheme's page sentry function determines if this attribute has any effect. See Also: "Establishing User Identity Through Authentication"

#### Duplicate Submission

Use the Allow duplicate page submissions list to specify whether or not Oracle HTML DB users may process a page multiple times in a row. Set this attribute to No to prevent duplicate page submissions from being processed multiple times.

Examples of duplicate page submissions include:

- A user clicks the Submit button multiple times.

- You create a branch of type Branch to Page, and the user clicks the browser reload button.

#### Configuration

Build options allow you to enable or disable functionality. Most application attributes have a build option attribute. Do not specify a build option for the current page unless you plan to exclude the page in certain configurations.

Build options have two possible values: `INCLUDE` and `EXCLUDE`. If you specify an attribute as being included, then the HTML DB engine considers it part of the application definition at run time. Conversely, if you specify an attribute as being excluded, then the HTML DB engine treats it as if it does not exist

See Also: "Using Build Options to Control Configuration"

#### On Error Text

Use this attribute to specify the error text that displays in the `#NOTIFICATION_MESSAGE#` template substitution string in the event an error occurs on the page.

See Also: "Page Templates"

#### Help

Use this attribute to enter Help text for the current page.

Help text is displayed using a help system that you must develop. To show the Help for a specific page, call the `HTMLDB_APPLICATION.HELP` procedure from a page that you create for displaying Help text. For example, you could use a navigation bar icon similar to:

    f?p=4000:4600:&APP_SESSION.::&DEBUG::LAST_STEP:&APP_PAGE_ID

Page-level help supports shortcuts using the following syntax:

    "SHORTCUT_NAME"

See Also: "Creating a Help Page" and "Using Shortcuts"

#### Comme nts

Use this attribute to record developer comments about the current page. These comments never display when the application is running.

### About Page Rendering Controls

Use the Page Rendering section of the Page Definition to specify attributes for defined regions, buttons, items, page rendering computations, and page processes.

#### Regi ons

A region is a section of a page that serves as a container for content within a page. The content of a region is determined by the region source. For example, a region may contain a report based on a SQL query you define, or it may contain static HTML.

See Also: "Customizing Regions" for information about creating specific types of regions Oracle Database Application Developer's Guide - Fundamentals for information about developing Web applications with PL/SQL Oracle Database PL/SQL Packages and Types Reference for information about htp packages

#### Buttons

As you design your application, you can use buttons to direct users to a specific page or URL, or to post or process information. Buttons can be placed in predefined region template positions or among items in a form.

See Also: "Creating Buttons"

#### Items

An item can be a text field, text area, password, select list, check box, and so on. Item attributes affect the display and behavior of items on a page. For example, these attributes can impact where a label displays, how large an item will be, and whether or not the item will display next to, or below the previous item.

There are two categories of items: page items and application items. Page items are placed on a page and have associated user interface properties, such as Display As, Label, and Label Template. Application items are not associated with a page and therefore have no user interface properties. An application item can be used as a global variable.

See Also: "Creating Items"

#### Page Computations

You can use computations to assign a value to an identified item when a page is submitted or displayed.

See Also: "Creating a Page Computation" and "Understanding Application Computations"

#### Page Processes

You create a page process to execute some type of logic (for example, using PL/SQL), or to make a call to the rendering engine. Typically a process performs an action. For example, a process may be hand coded PL/SQL, or the invocation of a predefined process available within Oracle HTML DB.

See Also: "Understanding Page Processes" and "Understanding Application Processes"

### About Page Processing Controls

Use the Page Processing section of the Page Definition to specify application logic such as computations, validations, processes, and branches. In general, the HTML DB engine runs this logic in the order it appears on the Page Definition.

Topics in this section include:

- Understanding Validations

- Understanding Branches

#### Understanding Validations

You can define a validation declaratively by selecting a validation method. You enter the actual validation edit check in the Validation Messages field. Be aware that if a validation fails, subsequent page processes or computations will not occur. Also remember that the validation you enter must be consistent with the validation type you selected. For more information about validation types, see online Help.

##### Creating a Validation

To create a new validation:

Note: Text entered for validations may not exceed 3,950 characters.

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Under Validations, click the Create icon.

   The Create Validations Wizard appears.

3. Select a validation level. Item level validations are specific to a single item. Page level validations do not apply to any single item, but apply to an entire page.

4. If you selected Item level validation, select the item to be validated and click Next.

5. Select a validation method as described in Table 5-10.

   Table 5-10 Validation Methods

   Validation Method | Descriptions
   --- | ---
   SQL | Compares item values to data in the database. For example, you can use a SQL validation to verify whether a last name typed into a field exists in the database. In the following Exists SQL validation, the field is named `P1_LAST_NAME` and the table is named `customers`.
       SELECT 1 FROM customers
       WHERE last_name = :P1_LAST_NAME
   PL/SQL | Useful if you need complex logic to validate entered data. For example, suppose you need to create a validation for an address form that requires the user enter a province if the address is not in the United States. You could create the validation as a Function Returning Boolean, using the following PL/SQL:
       BEGIN
         IF :P1_COUNTRY = 'US' AND :P1_PROVINCE IS NULL THEN
            RETURN FALSE;
         ELSE
           RETURN TRUE;
         END IF;
       END;
   You could also create the same validation implemented as a PL/SQL Expression as follows:
       NOT (:P1_COUNTRY='US' AND  :P1_PROVINCE IS NULL);
   Item Level Null | Checks if an item's value in session state is null. For example, you could validate that the user enters a value in a field by creating an item validation and then selecting the validation method Item Not Null.
   Item String Comparison | Compares the value of an item to a specific string. There are several string comparison validations that compare the value of an item to a literal string. For example, you select the validation type Item in Expression 1 is contained in Expression 2 to validate a user entry in a field against a list of values you provide. In Expression 1, enter the name of item you want to validate without a colon. For example:
       P1_VALUE
   In Expression 2, enter a string a values you want to validate against For example:
       ABC/DEF/GHI
   Regular Expression | Regular expressions provide a method to describe text patterns. Use a Regular Expression validation to perform data validation. For example, you could use the following regular expression validation to verify that a string of entered data always consists of groups of six numbers separated by commas and followed by a comma:
       ^([[:digit:]]{6},)+$
   This regular expression would find the following entries valid: `123456,654321,` `123456,` `123456,123456,654321`, However, the following would not be valid: `123456,12345` `12345`

6. For SQL, PL/SQL, and Item String Comparison validations, select the type of validation you want to create and click Next.

7. Specify the sequence and validation name and click Next.

8. Depending upon the validation method, enter the validation or message text that displays if the validation fails. Click Next.

9. Define conditions that apply to this validation and click Create.

See Also: "Validating User Input in Forms"

##### Defining How Validation Error Messages Display

You can choose to have validation error messages display inline (that is, on the page where the validation is performed) or on a separate error page.

To define how a validation error message displays:

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Under Validations, select the appropriate validation.

   The attributes page for the validation appears.

3. Scroll down to Error Message.

4. In Error Message, enter your error message text.

5. From Error message display location, select a display location.

   This attribute identifies where a validation error message displays. Validation error messages can display on an error page or inline within the existing page. Inline error messages can display in a notification area (defined as part of the page template) or within the field label.

   To create a hard error that stops all processing (including validations), you must display the error on an error page.

6. If you select Inline with Field or Inline with Field and in Notification, you need to associate an item with the error message. To associate an item with the error message, select the item from the Associated Item list.

7. Click Apply Changes.

##### Processing Validations Conditionally

You can control when and if a validation is performed under Conditions.

To create a condition for an existing validation:

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Under Validations, select the appropriate validation.

   The attributes page for the validation appears.

3. Scroll down to Conditions.

4. To have a validation performed when a user clicks a particular button, make a selection from the When Button Pressed list.

5. Make a section from the Condition Type list.

6. Depending upon the selected Condition Type, enter values in the Expression attributes. The validation will be rendered or processed if the specified condition is met.

7. Click Apply Changes.

#### Understanding Branches

A branch is an instruction to go to a specific page, procedure, or URL. For example, you can branch from page 1 to page 2 after page 1 is submitted.

You create a new branch by running the Create Page Branch Wizard and specifying Branch Point and Branch Type. The Branch Type defines the type of branch you are creating. For more information about Branch Types, see online Help.

##### Defining a Branch Point and Action

When you click a standard tab in an Oracle HTML DB application, the HTML DB engine sets session state, executes computations, and then links you to the target page. It does not run any processes or explicitly defined branches. In cases where the page is submitted without clicking a tab, the HTML DB engine explicitly defined branches to direct users to a subsequent page.

You can control when a branch executes by making a selection from the Branch Point list. Available options include:

- On Submit: Before Computation - Branching occurs before computations, validations, or processing. Use this option for buttons that do not need to invoke any processing, for example, a Cancel button.

- On Submit: Before Validation - Branching occurs after computations, but before validations or processing. If a validation fails, page processing stops, a rollback is issued, and the page displays the error. Because of this default behavior, you do not need to create branches to accommodate validations. However, you may want to branch based on the result of a computation (for example, to a previous branch point).

- On Submit: Before Processing - Branching occurs after computations and validations, but before processing. Use this option to branch based on a validated session state, but before performing any page processing.

- On Submit: After Processing - Branching occurs after computations, validations, and processing. This option branches to a URL or page after performing computations, validations, and processing. When using this option, remember to sequence your branches if you have multiple branches for a given branch point.

- On Load: Before Header - Branching occurs before a page is rendered. This option displays another page instead of the current page or redirects the user to another URL or procedure.

Depending upon the Branch Type you select, you can specify the following additional information in the Action attributes:

- The page ID of the page to which you want to branch

- PL/SQL procedure which ultimately renders a branch target page

- A URL address

##### Branching Conditionally

Like other controls, branches can be made conditional. To create a conditional branch, make a selection from the Condition Type list, and enter text in the expression fields to implement the condition type you choose.

See Also: "Controlling Navigation Using Branches"

### Understanding Page Computations

Use page computations to assign a value to an identified item when a page is submitted or displayed. You can also use application-level computations to assign values to items. Most application-level computations are performed for every page in an application. In contrast, computations created at the page-level only execute when that page is rendered or processed.

See Also: "Understanding Application Computations"

Topics in this section include:

- Creating a Page Computation

- Understanding Computation Points and Computation Syntax

- Editing Page Computation Attributes

#### Creating a Page Computation

You create a page computation by running the Create Page Computation Wizard. For each computation, specify the item for which you are creating the computation as well as a computation type.

See Also: "Page Computations"

To create a page computation:

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Under Computations, click the Create icon.

3. For Item Location, select the where the computation will execute and click Next. Location options include:

   - Item on this Page

   - Item on Another Page

   - Application Level Item

4. For Item, select the item and computation point at which you would like to perform the computation:

   1. Compute Item - Select the item the computation will update.

   2. Sequence - Select the order of evaluation.

   3. Computation Point - Select the point at which the computation executes. The computation point On New Instance executes the computation when a new session (or instance) is generated.

   4. Computation Type - Select the method of computation you want to create.

   5. Click Next.

5. In Computation, enter a computation which corresponds to the selected computation type and click Next.

6. On Condition, you can choose to make the computation conditional. To make a computation conditional, make selection from the Condition Type list and enter text in the expression fields.

7. Click Create.

#### Understanding Computation Points and Computation Syntax

A good example of using computations can be illustrated by a page containing form fields for entering phone numbers. In this example, the phone number is stored in one database column, however the data entry form breaks the phone number into three components; area code, prefix, and line number. In this example, the page items are called `P10_AREA_CODE`, `P10_PREFIX`, and `P10_LINE_NUMBER`.

Next, suppose you need to combine the values stored in these items into a single string. You could accomplish this by using an After Submit computation and store the combined values in an item called `P10_PHONE_NUMBER`.

To create a computation to store the combined values of `P10_AREA_CODE`, `P10_PREFIX`, and `P10_LINE_NUMBER` in new items:

1. Navigate to the appropriate Page Definition:

2. Create a new item named `P10_PHONE_NUMBER` to store the combined values of `P10_AREA_CODE`, `P10_PREFIX`, and `P10_LINE_NUMBER`. See "Creating a Page-Level Item".

3. Under Computations, click the Create icon.

4. For Location, select Item on this Page and click Next.

5. For Compute Item, select P10_PHONE_NUMBER.

6. For Sequence, select the order of evaluation.

7. For Computation, you have the option of creating one of the following computation types:

   1. Static Assignment:

      - For Computation Type, select Static Assignment and click Next.

      - Enter the following computation:

            (&P10_AREA_CODE.) &P10_PREFIX.-&P10_LINE_NUMBER.

      - Click Next.

   2. PL/SQL Function Body:

      - For Computation Type, select PL/SQL Function Body and click Next.

      - Enter the following computation:

            DECLARE
            l_return_value  VARCHAR2(300) DEFAULT NULL;
            BEGIN
                l_return_value :=
            '('||:P10_AREA_CODE||')'||:P10_PREFIX||'-'||:P10_LINE_NUMBER;
            RETURN l_return_value;
            END;

      - Click Next.

   3. SQL Query:

      - For Computation Type, select SQL Query and click Next.

      - Enter the following computation:

            SELECT '('||:P10_AREA_CODE||')'||:P10_PREFIX||'-'||:P10_LINE_NUMBER FROM DUAL

      - Click Next.

   4. PLSQL Expression:

      - For Computation Type, select PLSQL Expression and click Next.

      - Enter the following computation:

            '('||:P10_AREA_CODE||')'||:P10_PREFIX||'-'||:P10_LINE_NUMBER

      - Click Next.

8. Click Create.

#### Editing Page Computation Attributes

Once you create a computation, you can edit it on the Edit Page Computation page.

To edit a page computation:

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Under Computations, select the computation name.

   Edit Page Computation page appears.

3. Click Apply Changes.

##### Editing the Computation Point and Source

You control when a computation executes under the Computation Point attributes by specifying a sequence and a computation point. The computation point On New Instance executes the computation when a new session (or instance) is generated.

Under Source, enter an expression or query to compute an item's value. In the event a computation fails, you can optionally define an error message in Computation Error Message field.

##### Creating Conditional Computations

You can make a computation conditional by making a selection from the Condition Type list and entering text in the expression fields.

### Understanding Page Processes

A page process performs an action at a specified point during the rendering or submission of the page. For example, you can create a page process to execute logic or to make a call to the HTML DB engine. A page process is a unit of logic that runs when a specific event occurs, such as loading or submitting page.

From a functional perspective, there is no difference between page-level and application-level processes. The difference between these two process types is where the process is defined, that is at the page level or at the application level.

See Also: "Understanding Application Processes"

Topics in this section include:

- Creating a Page Process

- Editing Process Attributes

#### Creating a Page Process

You create a process by running the Create Process Wizard. During the wizard, you define a process name, specify a sequence, the point at which process will execute, and select a process category. You can change nearly all of these attributes on the Edit Page Process page.

To create a new process:

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Under Processes, click the Create icon.

3. Select a category. Table 5-11 describes available page process categories.

   Table 5-11 Process Categories

   Process Category | Description
   --- | ---
   Data Manipulation | Data Manipulation process types are frequently used by wizards to support data manipulation language (DML) actions. Oracle HTML DB supports the following declarative data manipulation processes: Select Automatic Row Fetch and Automatic Row Processing (DML) to create an automatic data manipulation language (DML) process Use Multi Row Update and Multi Row Delete in conjunction with tabular forms. Use Add Rows to Tabular Form in conjunction with a tabular form
   Close Popup Window | Upon execution, this process type closes a popup window and refreshes the calling window.
   Form Pagination | Implements pagination through the detail records associated with a master detail form. Most often used in master detail forms (such as in the Master Detail Wizard), this process checks the master table to determine which set of detail records you are in and determines what the next detail record should be. See Also: "Building a Master Detail Form"
   On Demand | Creates an application-level process that can only be executed when called from a specific page. When you create this process type at the page-level, you are creating reference to an existing application-level process. See Also: "About On Demand Application Processes"
   PL/SQL | Runs the PL/SQL you provide. Use this process type to execute a block of PL/SQL entered directly into the process or to simply call an existing API.
   Reset Pagination | In Report regions, resets pagination back to the first result set. The HTML DB engine keeps track of where the user is within a given result set. This process category returns the user to the beginning result set. In other words, this category resets the counters associated with the report region to return the first part of the result set the next time the result set displays.
   Session State | Sets the values of existing session state items to null. Select this process type to clear the cache for applications, sessions, or items as well as to clear existing user preferences. See Also: "Managing Session State Values" and "Managing User Preferences"
   Web Services | Implements a Web Service as a process on a page. Running the process submits a request to the service provider. See Also: "Invoking a Web Service as a Process"

4. Follow the on-screen instructions.

#### Editing Process Attributes

Once you create a process, you can control when the process executes and what the process does by editing attributes on the Edit Page Process page.

To edit an existing page process:

1. Navigate to the appropriate Page Definition:

   1. Navigate to the Workspace home page.

   2. Click the Application Builder icon.

   3. Select an application.

   4. Select a page.

      The Page Definition appears.

2. Select the process name.

   The Edit Page Process page appears.

##### Changing Processing Points and Source

You control when a process executes by specifying a sequence number and a process point under Process Point. You can prevent a process from running during subsequent visits to a page by selecting one of the following options under Run Process:

- Once for each page visit

- Once for each session or when reset

Enter the appropriate code for PL/SQL process types. For PL/SQL anonymous block processes, enter the appropriate code under Process. For Clear Cache processes, enter the appropriate code under Source. In the event a process fails, you can optionally define an error message in the Process Error Message field.

##### Creating Conditional Processes

You can make a process conditional by selecting a condition type and entering an expression under Conditional Processing.

Additionally, you can also make a selection from the When Button Pressed attribute. When you select a button from this list, the process only executes if a user clicks the selected button.

## Accessing Alternate Page Views

Application Builder includes a number of views to help you better manage the components and controls that define a page.

Topics in this section include:

- Accessing Alternative Page Views

- Page Events

- Objects

- History

- Export

- Groups

- Referenced Components

### Accessing Alternative Page Views

To access alternate page views:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

4. Select a page.

   The Page Definition appears.

5. From the View list, select a view and click Go. Available options include:

   - Events

   - Objects

   - History

   - Export

   - Groups

   - Referenced

The following sections describe each view.

See Also: "About the Page Definition"

### Page Events

The Page Events view details all currently defined page controls and processes. It provides a chronological view of how and in what order the HTML DB engine renders the page, invokes logic, and runs processes. You can control the amount of information that displays by selecting one of the following view options:

- Show All displays all possible page controls and processes, including those not currently defined.

- Show Used displays currently used page controls and processes (Default).

To view details about a specific page control or process, click the appropriate hypertext link. Alternately, you can create new page controls and processes by clicking the small icons to the left of each entry.

To run the current page, click the Run icon.

### Objects

The Object References view displays a list of database objects referenced by the current page.

### History

The History view displays a history of recent changes to the currently selected page by developer, application, page ID, modification date, component, and action.

### Export

Use Export to export the current page. Remember that some pages may reference shared components. To export all pages within an application, you need to complete an application export.

See Also: "How to Deploy an Application to Another Oracle HTML DB Instance" and "Exporting a Page in an Application"

### Groups

The Page Groups view displays all pages that are part of the same page group as the current page. Click a page ID to edit the page group. Click a page name to view the page definition.

### Referenced Components

The Referenced Components report lists page components and shared components associated with the current page.

## About the Shared Components Page

Shared components are common elements that can display or be applied on any page within an application. Examples of shared components include:

- Logic controls, such as application items, application processes, application computations, Web service references, and build options

- Security controls, such as creating authentication and authorization schemes, enabling session state protection, or configuring Security attributes

- Globalization tasks such as translating an application, translating messages, or configuring globalization attributes

- Navigation controls, such as breadcrumbs, lists, navigation bar entries, tabs, and trees

- User interface elements, such as themes, templates, user interface defaults, lists of values, and shortcuts)

- File management, such as managing cascading style sheets, images, and static files

You can use the tools and wizards on the Shared Components page either at the application-level, or on specific pages.

Topics in this section include:

- Accessing the Shared Components Page

- Understanding the Shared Components Page

### Accessing the Shared Components Page

To access the Shared Components page:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

4. On the Application home page, click Shared Components.

   The Shared Components page appears.

5. To create a shared component, select the appropriate link.

### Understanding the Shared Components Page

The following sections describe each link on the Shared Components page.

#### Application Items

Application level items do not display, but are used as global variables to the application. Commonly, you set the value of a page-level item using an application or page computations.

See Also: "Creating an Application-Level Item"

#### Application Processes

Use application processes to run PL/SQL logic:

- At specific points for each page in an application

- As defined by the conditions under which the process is set to execute

- Upon the creation of a new session

Note that On Demand processes executes only when called from page-level On Demand process.

See Also: "Understanding Application Processes"

#### Application Computations

Use application-level computations to assign values to application and page-level items for each page displayed or upon the creation of a new application session. You can also create an application-level computation and execute it conditionally on multiple pages.

See Also: "Understanding Application Computations"

#### Web Service References

Web service references in Oracle HTML DB are based on the Simple Object Access Protocol (SOAP). You can create a reference to a Web service and then incorporate it into an application to process data submitted by a form, or to render output in the form or report.

See Also: "Implementing Web Services"

#### Build Options

Use build options to conditionally display or process specific functionality within an application. You can use build options to control which features of an application are turned on for each application deployment.

See Also: "Using Build Options to Control Configuration"

#### Authentication Schemes

Authentication is the process of establishing each user's identify before they can access your application. Authentication may require a user enter a user name and password or may involve verification of a user's identity or use of a secure key

See Also: "Establishing User Identity Through Authentication"

#### Authorization Schemes

Authorization controls user access to specific controls or components based on predefined user privileges.

See Also: "Providing Security Through Authorization"

#### Session State Protection

Session State Protection is a built-in functionality that prevents hackers from tampering with the URLs within your application. URL tampering can adversely affect program logic, session state contents, and information privacy.

See Also: "Understanding Session State Protection"

#### Edit Security Attributes

Use the Edit Security Attributes page to configure general security attributes for all pages within an application.

See Also: "Configuring Security Attributes"

#### Translate Application

You can develop applications in Oracle HTML DB that can run concurrently in different languages. A single Oracle database and Oracle HTML DB instance can support an application in multiple languages. Translating an application involves multiple steps. Click this link to access the Translate Application page.

See Also: "About Translating an Application and Globalization Support" and "Understanding the Translation Process"

#### Text Message

Text messages are named text strings that can be called from PL/SQL code you write. This PL/SQL can be anonymous blocks within page processes and page regions, or in packages and procedures.

See Also: "Translating Messages Used in PL/SQL Procedures"

#### Edit Globalization Attributes

You can develop applications that can run concurrently in different languages. Click this link to specify globalization options such as the Application Primary Language and Application Language Derived From attributes.

See Also: "Configuring Globalization Attributes" and "About Translating an Application and Globalization Support"

#### Breadcrumbs

Breadcrumbs provide users with hierarchical navigation. A breadcrumb is a hierarchical list of links that display using templates. You can display a breadcrumb as a list of links, or as a breadcrumb path.

See Also: "Creating Breadcrumbs"

#### Lists

A list is a shared collection of links. You control the appearance of a list through list templates. Each list element has a display condition that enables you to control when it displays.

See Also: "Creating Lists"

#### Navigation Bar Entries

Navigation bars entries offer users a simple navigation path for moving between pages in an application. The location of a navigation bar depends upon the associated page template. Navigation bar entries can display as a link from an image or text. A navigation bar entry can be an image, an image with text beneath it, or text.

See Also: "Creating a Navigation Bar Entry"

#### Tabs

Tabs are an effective way to navigate users between pages in an application. You can create two types of tabs: standard tabs or parent tabs. A standard tab set is associated with a specific page and page ID. A parent tab set functions as a container to hold a group of standard tabs

See Also: "Creating Tabs"

#### Trees

A tree is an effective way to communicate hierarchical or multiple level data

See Also: "Creating Trees"

#### Themes

A theme is a named collection of templates that defines the application user interface.

See Also: "Managing Themes"

#### Templates

Templates control the look and feel of specific constructs within your application, such as pages, regions, items, and menus.

See Also: "Customizing Templates"

#### User Interface Defaults

User interface defaults enable you to assign default user interface properties to a table, column, or view within a specified schema. When you create a form or report using a wizard, the wizard uses this information to create default values for region and item properties.

Because user interface defaults are associated with a table, you can use them with applications created using the form and report wizards.

See Also: "Managing User Interface Defaults"

#### Lists of Values

A list of values (LOV) is a static or dynamic set of values used to display a popup list of values, select list, check box, or radio group.

See Also: "Creating Lists of Values"

#### Shortcuts

Use shortcuts to avoid repetitive coding of HTML or PL/SQL functions. You can create a shortcut to define a page control such as a button, HTML text, a PL/SQL procedure, or HTML. Once you define a shortcut it is stored in a central repository so you can reference from various locations within your application.

See Also: "Using Shortcuts"

#### Cascading Style Sheets

Oracle HTML DB includes themes that contain templates that reference their own cascading style sheets (CSS). Use the Cascading Style Sheets link to upload cascading style sheets to your workspace.

See Also: "Using Custom Cascading Style Sheets"

#### Images

Use the Images link to upload images to your workspace.

See Also: "Uploading Images"

#### Static Files

Use the Static Files link to upload static files to your workspace.

See Also: "Uploading Static Files"

## Understanding Application Processes

Application processes are blocks of PL/SQL logic that are set run at specific points using the processing of multiple pages of an application. By default, application processes execute at the same point for every page in the application. However, you can apply conditions for specific pages to control when the process executes.

Topics in this section include:

- About On Demand Application Processes

- Application Process Example

- Creating an Application Process

- Accessing Application Processes Reports

### About On Demand Application Processes

A special type of application process is the On Demand process. An On Demand application process has a Process Point of On Demand and executes when called from a page-level On Demand process. On Demand processes are useful when you have PL/SQL logic that you would like to run from different execution points across multiple pages.

See Also: "Creating a Page Process"

#### Running an On Demand Process from a Page Request

You can have an Oracle HTML DB page request run an On Demand process by using the following syntax:

    f?p=application_id:page_id:session:APPLICATION_PROCESS=process_id

Where:

- `application_id` is the application ID or alphanumeric alias

- `page_id` is the page ID or alphanumeric alias

- `session` is the session ID

- `APPLICATION_PROCESS=process_id` is the keyword `APPLICATION_PROCESS=` followed by either the process ID or an alphanumeric name of an application-level process having a Process Point of On Demand

When you use this syntax, the HTML DB engine recognizes the request and processes it using the following rules:

- The page ID in the URL can be any page ID. The page ID is required in the request only as a syntactic placeholder because no specific page is accessed for this type of request.

- The process authorization scheme, the application's authorization scheme, and the process conditions are supported.

- Session state (that is, item names and values) may be set in the URL, but clear cache options are ignored.

- Any failures of authentication, authorization, or process conditions do not result in visible error messages or other indicators of such failures and most often result in a blank page being displayed.

- Specifying the process by name locates the first process with the specified (case-preserved) name.

See Also: "Clearing Session State"

### Application Process Example

A shopping cart application is a good example of when you might use an application process. For example, suppose you need to display the contents of a user's shopping cart with each page view. To accomplish this you create a region on page zero of your application that displays the values of the application-level items `TOTAL_CART_ITEMS` and `TOTAL_PURCHASE_PRICE`.

See Also: "Displaying Components on Every Page of an Application"

Instead of writing a process of each page to set the values of `TOTAL_CART_ITEMS` and `TOTAL_PURCHASE_PRICE`, you could write an application process of type On Load: Before Header to compute these values. Then, the HTML DB engine would execute the process on each page as it renders the application. As a result, each page, would display the most current values for `TOTAL_CART_ITEMS` and `TOTAL_PURCHASE_PRICE`.

### Creating an Application Process

To create an application process:

1. Navigate to the Shared Components page:

   1. Click Application Builder on the Workspace home page.

   2. Select an application.

   3. On the Application home page, click Shared Components.

      The Shared Components page appears.

2. Under Logic, select Application Processes.

3. Click Create.

4. For Identification:

   1. Name - Enter a name for the application process.

   2. Sequence Number - Specify the sequence number for this process. The sequence number determines the order in which the process will be evaluated relative to other process.

   3. Point - Identify the point at which this process executes.

   4. Click Next.

5. For Source:

   1. Process Text - Enter the text that is to be the source of your process.

   2. Error Message - Enter the error message that displays if the process raises an error.

   3. Click Next.

6. For Conditionality:

   1. Condition Type - Select a condition type that must be met in order for this process to execute.

   2. Expression 1 and Expression 2 - Uses these attribute to conditionally control whether or not the process executes. Enter values in this attribute based on the specific condition type you select. The process will execute if the specified condition is met.

   3. Click Create Process.

#### About the Application Process Page

Once you create an application process, it appears on the Application Processes page. You control how the page displays by making a selection from the View list. Available options include:

- Icons (the default) displays each process as a large icon. To edit a process, click the appropriate icon.

- Details displays each application process as a line in a report. To edit a process, click the name.

### Accessing Application Processes Reports

After you create an application process, you can access the Utilization and History reports.

To access application processes reports:

1. Navigate to the Workspace home page.

2. Click Application Builder.

3. Select an application.

4. When Application Builder appears, click Shared Components.

5. Under Logic, select Application Processes.

6. Select one of the following tabs at the top of the page:

   - Utilization

   - History

7. Follow the on-screen instructions.

#### Utilization

Click Utilization to display the Application Process Utilization page. This page displays application processes used in the current application.

#### History

Click History to display the Application Process History page. This page displays a history of recently changed application process by date.

## Understanding Application Computations

Application Computations are units of logic that set the value of a single page or application level item and are run at the same point across multiple pages in an application. Like page level computation, application computations can be based on static values, item values, PL/SQL, or SQL.

Topics in this section include:

- About Application Computations

- Creating an Application Computation

- Accessing the Application Computation History Report

### About Application Computations

A common use of an application item is to store the value of the last page viewed in the application. By storing the value in an item, you can add a back button and then redirect the user to the page ID captured by the computation. This type of computation works well, for example, when you need to enable users to back out of an error page.

The following is an example of a computation that stores the last page visited. In this example, the computation:

- Stores the last application page visited to an item named `LAST_PAGE`

- Checks that the value of a `CURRENT_PAGE_ITEM` is of type PL/SQL Function Body with a Computation body of:

      BEGIN
         :LAST_PAGE := nvl(:CURRENT_PAGE,:APP_PAGE_ID);
         :CURRENT_PAGE := :APP_PAGE_ID;
         RETURN :LAST_PAGE;
      END;

#### About Application Computations that Execute On New Instance

Typically an application computation runs at the same point across multiple pages in an application. The exception is computations having a Computation Point of On New Instance. This type of computation only runs when a user first accesses your application. This type of computation is useful when you need to only retrieve information once within a user's session (for example, to retrieve a user's job title).

### Creating an Application Computation

To create an application computation:

1. Navigate to the Shared Components page:

   1. Click Application Builder on the Workspace home page.

   2. Select an application.

   3. On the Application home page, click Shared Components.

      The Shared Components page appears.

2. Under Logic, select Application Computation.

3. Click Create.

4. For Computation Item, select the item this computation will affect.

5. For Computation Point, select a process point at which this computation should be performed.

6. For Computation:

   1. For Computation - Enter the computation logic that corresponds to the computation type.

   2. Computation Error Message - Enter the error message that displays if the computation fails.

7. From Authorization Scheme (optional), select an authorization scheme which must evaluate to True in order for this computation to execute.

8. Under Conditions:

   1. Condition Type - Select a condition type that must be met in order for this computation to execute.

   2. Expression 1 and Expression 2 - Uses these attribute to conditionally control whether or not the computation executes. Enter values in this attribute based on the specific condition type you select. The computation will execute if the specified condition is met.

9. From Build Option (optional), select a build option for this component.

10. Click Create.

#### About the Application Computations Page

Once you create an application computation, it appears on the Application Computations page. You control how the page displays by making a selection from the View list. Available options include:

- Icons (the default) displays each computation as a large icon. To edit an computation, click the appropriate icon.

- Details displays each application process as a line in a report. To edit a computation process, click the name.

### Accessing the Application Computation History Report

Once you create an application computation, you can view the Application Computation History report.

To access the Application Computation History report:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

4. When Application Builder appears, click Shared Components.

5. Under Logic, select Application Processes.

6. Select History tab at the top of the page.

   This Application Computation History report displays a history of recently changed application computations by date.

## Viewing Application Reports

Application Builder includes over 70 reports which provide a comprehensive view of your application from various perspectives. You can use application reports to achieve consistency among shared components and page components within your application. For example, you can view details about buttons used on all pages within your application. Additionally, many reports are updatable so you can standardize components, such as item and region labels, without navigating to a specific page.

To view reports specific to the currently selected application:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

   The Applications home page appears.

4. From the Tasks list, select View Application Reports.

5. Select a type of report to view:

   - Shared Components reports offer information on common elements that can display on every page within an application. Report examples include Application Comments, Breadcrumb Entries, Database Object Dependencies, Lists of Values, Static Entries, and Messages).

   - Page Components reports offer detailed information on controls and logic that execute when the page is rendered (for example, branches, buttons, computations, items, and regions).

   - Activity reports offer details about developer activity within the current application. Available reports include Changes by Developer, Changes by Developer by Day, Chart of Changes by Developer, and Recent Changes.

   - Cross Application reports offer information that apply to multiple applications. Available reports include Application Attributes, Application Comments, Build Options, Page Component Counts, Security Profiles by Application, and Template Defaults by Application.

See Also: "Creating Custom Activity Reports Using HTMLDB_ACTIVITY_LOG"

### About the Database Object Dependencies Report

The Database Object Dependencies report identifies database objects referenced by the current application. Review this report to determine what objects to move when deploying an application.

See Also: "How to Deploy an Application to Another Oracle HTML DB Instance"

To view the Database Object Dependencies report:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

4. From the Tasks list, select View Application Reports.

5. Click Shared Components.

6. Select Database Object Dependencies.

7. Click Compute Dependencies.

8. To view the components that reference a specific database object, select the Reference Count number.

### About the Region Source Report

Use the Region Source report to search through all region source in your application.

To view the Region Source report:

1. Navigate to the Workspace home page.

2. Click the Application Builder icon.

3. Select an application.

4. From the Tasks list, select View Application Reports.

5. Click Page Components.

6. Select Region Source.

7. To view the Page Definition for a region, select the page ID.

8. To view region attributes for a region, select the region name.